Expert systems and techniques for building expert systems are well known and described in text books such as S. Russel and P. Norvig, “Artificial Intelligence—A Modern Approach,” 2nd edition, Prentice Hall (2003). In general, an expert system is a computer implemented system that attempts to provide the knowledge and the responses of a human expert for at least a specific problem. Expert systems can encode knowledge or inference rules in data structures rather than in program code. A key advantage of this approach is that an expert can author a knowledgebase or inference rules and can understand or modify statements relating to their expertise without having strong programming abilities.
Decision support systems are similarly known computer implemented advisor systems but specifically attempt to support decision making activities. The concept of decision support can be very broad. A decision support system may refer to a type of expert system that provides relevant information, advice, or other support of a decision making process. For example, a decision support system can search for, collect, and provide data that is relevant to a decision that a user is considering. A decision support system may include a questionnaire to identify the context of the decision being made, so that the relevant advice or data may be provided.
Conventional expert and decision support systems commonly use decision trees or decision tables to represent a questionnaire that must be traversed to arrive at a final result. However, the logic involved in such a questionnaire can be more complex than a simple tree structure can easily represent. For example, representing the complex context needed for evaluation of privacy best practice and regulations with a tree structure can quickly run into problems because of the large number of possible answers, the need to duplicate the same information in many places within the tree, the huge size of resultant trees, the common need to perform additional computation outside the decision tree, and the need to conjoin output and not just stop once an output could be given. These issues can make authoring of the questionnaire for such a system difficult. Further, some systems must test for several independent contexts, and results are generated and output according to each of the independent contexts. For these systems, the decision tree approach could necessitate defining one decision tree for each context and testing the outcome of all the decision trees created.
Another issue for advisor systems is completeness. In particular, all possible combinations of answers from a questionnaire must provide respective contexts for which a corresponding knowledgebase can provide an unambiguous answer or other output. However, many expert systems, decision support systems, and advisor systems generally are too complex to allow for provable completeness using conventional architectures because of the large number of combinations of answers. As a result, it is difficult for an expert or system builder to know whether a system is complete and asks all necessary questions or has all the necessary answers at every leaf node of every decision tree required in a system.
Use of the same reference symbols in different figures indicates similar or identical items.